Fire systems, such as fire detection systems, fire suppression systems or combination fire detection and suppression systems, typically comprise a master module and a series of slave units. Slave units have elements that are designed to perform specific tasks related to fire detection, notification, and suppression, such as detecting information about the environment and communicating the information to the master module, or, upon receiving instructions from the master module, performing a fire suppression function or generating an audible and/or visual alert to occupants.
Different types of slave units or combinations of slave units are typically deployed based on the specific application. Fire systems for premises typically include fire sensors, pull stations, and alarms. On the other hand, fire systems for vehicles typically include a variety of sensors, release modules, annunciators, and manual override switches.
Fire systems are installed on large vehicles such as those used in the mining, forestry, landfill and mass transit industries to prevent or mitigate damage to complex and expensive equipment. For example, a mining dump truck could feature a reciprocating engine driving a generator, which in turn provides power to electric motors that drive the wheels. Any one of these components can overheat and catch on fire, causing extensive damage to complex and expensive equipment. The fire systems are employed to minimize such losses.
The master modules and slave units of fire systems are typically installed on a common bus. As a result, they need to have unique working addresses so that the master module can communicate with individual slave units. Slave units typically also have a serial number or unique identification number programmed into their read-only (ROM) memory. Serial numbers are generally large (typically 8 or more bytes). By contrast, working addresses need to be small (typically a single byte) in order to facilitate efficient communication between the master module and slave units.
In some systems, the slave units are assigned working addresses at installation. These addresses are commonly indicated by setting dual in-line package (DIP) or rotary switches. Assigning or changing the address of a slave module requires physical access to the above mentioned switches.
Other systems employ the serial numbers to dynamically assign working addresses. The system described in “Identifying a Plurality of Devices,” U.S. Pat. No. 8,232,869 B2 to Bennett, which is incorporated herein by this reference, scans for matching serial numbers at varying levels. The master module determines that there are slave units that have not been assigned a working address. The master module broadcasts only a portion of the serial number (i.e. the portion of the serial number containing a certain number of the least significant bits) with instructions for the slave units that have not been assigned working addresses to compare the portion of the serial number to the corresponding portion of their own serial numbers and respond if they match. If a match is found, the slave unit with the matching serial number is assigned a working address.
In this system, the possibility exists for data collisions to occur. When the portion of the serial number for more than one slave unit matches the serial number portion broadcast by the master module, each matching slave unit sends a response message simultaneously. Because the master and slaves are installed on a common bus, the transmissions collide, resulting in corrupted data. Collisions are detected by the master module through the use of checksum or CRC values contained in the transmissions. In the event of a collision, the master module initiates a second level scan that broadcasts a larger portion of the serial number (i.e. a greater number of bits) than the first level scan in order to differentiate between the two or more slave units that responded.